#pragma once
#include "Trigger.h"
#include "EntityParameter.h"

class AIGoal
{
	//struct AIGoalRecord;
	

	std::vector<Trigger*> triggerList;


	std::map<Ogre::String, EntityControl*> entityMap;



public:

	struct AIGoalRecord
	{
		//Not used yet
		Ogre::String entity;


		Ogre::String param;
		EntityParameter * goal;
		int weight;
		int offset;
		bool negate;

	};

	std::vector<AIGoalRecord*> recordList;


	AIGoal(void);
	~AIGoal(void);


	int calcGoalValue(EntityControl *entity);
	void addGoalRecord(AIGoalRecord *goal);
	void addTrigger(Trigger * t);

	void addInvolvedEntity(Ogre::String name, EntityControl *entity);

	std::vector<Trigger*> *getTriggerList();


};

